{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 一.基本原理\n",
    "\n",
    "该部分参考了[《谱聚类》-刘建平](https://www.cnblogs.com/pinard/p/6221564.html#!comments)，本节会使用矩阵的特征分解，如果对相关概念模糊，可以先看看19章的PCA和LDA以及MDS，谱聚类将每个样本看作空间中的一个点，点与点之间的距离越近则权重越大，而谱聚类同样离不开“同类相近，异类相斥”的核心思想，所以需要量化“同类”的权重，使其尽可能的大，量化“异类”的权重，是其尽可能的小，所以谱聚类的核心内容两个：  \n",
    "\n",
    "（1）如何表示点与点之间的相似度权重，这里通常可以使用RBF函数，对于任意两点$x_i,x_j$，它们之间的权重可以表示为$w_{ij}=exp\\left(-\\frac{\\left|\\left|x_i-x_j\\right|\\right|_2^2}{2\\sigma^2}\\right)$  \n",
    "\n",
    "（2）如何对同类以及异类进行量化：   \n",
    "\n",
    "> （2.1）同类的权重可以简单由该类包含的样本来决定，对于类别样本点id的集合$A$，定义为$|A|:=A的大小$；   \n",
    "\n",
    ">（2.2）异类之间的权重可以定义为，$A$集合与$B$任意两点之间的权重和$W(A,B)=\\sum_{i\\in A,j\\in B}w_{ij}$\n",
    "\n",
    "离我们的优化目标还差一步了，那就是只需要一个单目标来表示同类权重尽可能大，异类权重尽可能小，将其相除即可，即最终的目标函数为：   \n",
    "\n",
    "$$\n",
    "    L(A_1,A_2,...,A_k)=\\sum_{i=1}^k\\frac{W(A_i,\\bar{A_i})}{|A_i|}\n",
    "$$  \n",
    "\n",
    "其中，$k$为类别数，即我们定义的超参数，$\\bar{A_i}$为$A_i$的补集，显然聚类任务要求$A_1,A_2,...,A_k$之间互斥且完备  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 二.优化目标推导\n",
    "我们的优化目标是从$A_1,A_2,...,A_k$的不同组合中选择使$L(A_1,A_2,...,A_k)$最小的，这显然是一个NP-Hard问题，借鉴降维的思想，我们假设这$k$聚类由$k$个指示向量来表示:$h_1,h2,...,h_k$,其中每个向量$h_j$是$n$维向量（$n$是样本量），并令：   \n",
    "\n",
    "$$\n",
    "h_{ij}=\\left\\{\\begin{matrix}\n",
    "0 & i\\notin A_j\\\\ \n",
    "\\frac{1}{\\sqrt{|A_j|}} & i\\in A_j\n",
    "\\end{matrix}\\right. j=1,2,..,k;i=1,2,...,n\n",
    "$$  \n",
    "\n",
    "所以，我们聚类指示向量之间是单位正交化的$h_i^Th_i=1,h_i^Th_j=0$，所以上面的组合问题就转换为了求指示向量的问题，让我们推导一下  \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "\\begin{split}\n",
    "\\frac{W(A_i,\\bar{A_i})}{|A_i|}&=\\frac{1}{2}\\left(\\frac{W(A_i,\\bar{A_i})}{|A_i|}+\\frac{W(\\bar{A_i},A_i)}{|A_i|}\\right)\\\\\n",
    "&=\\frac{1}{2}(\\sum_{m\\in A_i,n\\notin A_i}\\frac{w_{mn}}{|A_i|}+\\sum_{m\\notin A_i,n\\in A_i}\\frac{w_{mn}}{|A_i|})\\\\\n",
    "&=\\frac{1}{2}\\sum_{m,n}w_{mn}(h_{mi}-h_{ni})^2\\\\\n",
    "&=h_i^TLh_i\n",
    "\\end{split}\n",
    "\\end{equation}\n",
    "$$  \n",
    "\n",
    "其中，$L$即是拉普拉斯矩阵，它由两部分构成:   \n",
    "\n",
    "$$\n",
    "L=D-W\n",
    "$$  \n",
    "\n",
    "这里，$D=diag(d_1,d_2,...,d_n),d_i=\\sum_{j=1}^nw_{ij}$，而$W_{ij}=w_{ij}$  \n",
    "\n",
    "所以，整体的损失函数，可以表示为：  \n",
    "\n",
    "$$\n",
    "\\begin{equation}\n",
    "\\begin{split}\n",
    "L(A_1,A_2,...,A_k)&=\\sum_{i=1}^k h_i^TLh_i\\\\\n",
    "&=tr(H^TLH)\\\\\n",
    "s.t.H^TH=I\n",
    "\\end{split}\n",
    "\\end{equation}\n",
    "$$  \n",
    "\n",
    "所以，$H\\in R^{n\\times k}$就是对$L$对特征分解后，由最小的$k$个特征值对应的特征向量组成，当然实际求解出的$H$未必能满足我们的期望：  \n",
    "\n",
    "$$\n",
    "h_{ij}=\\left\\{\\begin{matrix}\n",
    "0 & i\\notin A_j\\\\ \n",
    "\\frac{1}{\\sqrt{|A_j|}} & i\\in A_j\n",
    "\\end{matrix}\\right. j=1,2,..,k;i=1,2,...,n\n",
    "$$  \n",
    "\n",
    "所以，通常还需要对其进行一次聚类，比如K-means"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 三.代码实现"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "os.chdir('../')\n",
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "import ml_models\n",
    "from sklearn.datasets.samples_generator import make_blobs\n",
    "X, y = make_blobs(n_samples=400, centers=4, cluster_std=0.85, random_state=0)\n",
    "X = X[:, ::-1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#训练\n",
    "from ml_models.cluster import Spectral\n",
    "spectral = Spectral(n_clusters=4)\n",
    "plt.scatter(X[:, 0], X[:, 1], c=spectral.fit_predict(X))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 四.讨论\n",
    "\n",
    "可以发现谱聚类的灵活度很高，里面可以替换的组件很多，给了我们很大的空间，比如（1）相似矩阵的度量，可以采用其他核函数;（2）最终的聚类算法除了采用kmeans也可以尝试其他算法;（3）另外损失函数的定义还有其他方式，比如将$|A_i|$替换为$vol(A_i)$，它的定义为$vol(A_i)=\\sum_{j\\in A_i}d_j$,这也是谱聚类常用的另外一种损失函数定义，具体推导与上面的过程类似。另外由于谱聚类由相似矩阵推导而来，所以它对于稀疏矩阵比较友好，但是由于谱聚类的pipline结构，可能会由于某一组件的表现较差而影响最终的结果。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
